package com.cxkj.dto;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class UsersExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UsersExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUidIsNull() {
            addCriterion("uId is null");
            return (Criteria) this;
        }

        public Criteria andUidIsNotNull() {
            addCriterion("uId is not null");
            return (Criteria) this;
        }

        public Criteria andUidEqualTo(Integer value) {
            addCriterion("uId =", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotEqualTo(Integer value) {
            addCriterion("uId <>", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidGreaterThan(Integer value) {
            addCriterion("uId >", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidGreaterThanOrEqualTo(Integer value) {
            addCriterion("uId >=", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidLessThan(Integer value) {
            addCriterion("uId <", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidLessThanOrEqualTo(Integer value) {
            addCriterion("uId <=", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidIn(List<Integer> values) {
            addCriterion("uId in", values, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotIn(List<Integer> values) {
            addCriterion("uId not in", values, "uid");
            return (Criteria) this;
        }

        public Criteria andUidBetween(Integer value1, Integer value2) {
            addCriterion("uId between", value1, value2, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotBetween(Integer value1, Integer value2) {
            addCriterion("uId not between", value1, value2, "uid");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNull() {
            addCriterion("userName is null");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNotNull() {
            addCriterion("userName is not null");
            return (Criteria) this;
        }

        public Criteria andUsernameEqualTo(String value) {
            addCriterion("userName =", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotEqualTo(String value) {
            addCriterion("userName <>", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThan(String value) {
            addCriterion("userName >", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThanOrEqualTo(String value) {
            addCriterion("userName >=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThan(String value) {
            addCriterion("userName <", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThanOrEqualTo(String value) {
            addCriterion("userName <=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLike(String value) {
            addCriterion("userName like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotLike(String value) {
            addCriterion("userName not like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameIn(List<String> values) {
            addCriterion("userName in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotIn(List<String> values) {
            addCriterion("userName not in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameBetween(String value1, String value2) {
            addCriterion("userName between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotBetween(String value1, String value2) {
            addCriterion("userName not between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion("password is null");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion("password is not null");
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion("password =", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion("password <>", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion("password >", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("password >=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion("password <", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion("password <=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion("password like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion("password not like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion("password in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion("password not in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion("password between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion("password not between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andIdentityIsNull() {
            addCriterion("identity is null");
            return (Criteria) this;
        }

        public Criteria andIdentityIsNotNull() {
            addCriterion("identity is not null");
            return (Criteria) this;
        }

        public Criteria andIdentityEqualTo(String value) {
            addCriterion("identity =", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityNotEqualTo(String value) {
            addCriterion("identity <>", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityGreaterThan(String value) {
            addCriterion("identity >", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityGreaterThanOrEqualTo(String value) {
            addCriterion("identity >=", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityLessThan(String value) {
            addCriterion("identity <", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityLessThanOrEqualTo(String value) {
            addCriterion("identity <=", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityLike(String value) {
            addCriterion("identity like", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityNotLike(String value) {
            addCriterion("identity not like", value, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityIn(List<String> values) {
            addCriterion("identity in", values, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityNotIn(List<String> values) {
            addCriterion("identity not in", values, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityBetween(String value1, String value2) {
            addCriterion("identity between", value1, value2, "identity");
            return (Criteria) this;
        }

        public Criteria andIdentityNotBetween(String value1, String value2) {
            addCriterion("identity not between", value1, value2, "identity");
            return (Criteria) this;
        }

        public Criteria andUstatusIsNull() {
            addCriterion("uStatus is null");
            return (Criteria) this;
        }

        public Criteria andUstatusIsNotNull() {
            addCriterion("uStatus is not null");
            return (Criteria) this;
        }

        public Criteria andUstatusEqualTo(String value) {
            addCriterion("uStatus =", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusNotEqualTo(String value) {
            addCriterion("uStatus <>", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusGreaterThan(String value) {
            addCriterion("uStatus >", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusGreaterThanOrEqualTo(String value) {
            addCriterion("uStatus >=", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusLessThan(String value) {
            addCriterion("uStatus <", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusLessThanOrEqualTo(String value) {
            addCriterion("uStatus <=", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusLike(String value) {
            addCriterion("uStatus like", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusNotLike(String value) {
            addCriterion("uStatus not like", value, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusIn(List<String> values) {
            addCriterion("uStatus in", values, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusNotIn(List<String> values) {
            addCriterion("uStatus not in", values, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusBetween(String value1, String value2) {
            addCriterion("uStatus between", value1, value2, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUstatusNotBetween(String value1, String value2) {
            addCriterion("uStatus not between", value1, value2, "ustatus");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeIsNull() {
            addCriterion("uCreateTime is null");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeIsNotNull() {
            addCriterion("uCreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeEqualTo(Date value) {
            addCriterion("uCreateTime =", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeNotEqualTo(Date value) {
            addCriterion("uCreateTime <>", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeGreaterThan(Date value) {
            addCriterion("uCreateTime >", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("uCreateTime >=", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeLessThan(Date value) {
            addCriterion("uCreateTime <", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("uCreateTime <=", value, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeIn(List<Date> values) {
            addCriterion("uCreateTime in", values, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeNotIn(List<Date> values) {
            addCriterion("uCreateTime not in", values, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeBetween(Date value1, Date value2) {
            addCriterion("uCreateTime between", value1, value2, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("uCreateTime not between", value1, value2, "ucreatetime");
            return (Criteria) this;
        }

        public Criteria andUcolumn1IsNull() {
            addCriterion("uColumn_1 is null");
            return (Criteria) this;
        }

        public Criteria andUcolumn1IsNotNull() {
            addCriterion("uColumn_1 is not null");
            return (Criteria) this;
        }

        public Criteria andUcolumn1EqualTo(String value) {
            addCriterion("uColumn_1 =", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1NotEqualTo(String value) {
            addCriterion("uColumn_1 <>", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1GreaterThan(String value) {
            addCriterion("uColumn_1 >", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1GreaterThanOrEqualTo(String value) {
            addCriterion("uColumn_1 >=", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1LessThan(String value) {
            addCriterion("uColumn_1 <", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1LessThanOrEqualTo(String value) {
            addCriterion("uColumn_1 <=", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1Like(String value) {
            addCriterion("uColumn_1 like", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1NotLike(String value) {
            addCriterion("uColumn_1 not like", value, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1In(List<String> values) {
            addCriterion("uColumn_1 in", values, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1NotIn(List<String> values) {
            addCriterion("uColumn_1 not in", values, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1Between(String value1, String value2) {
            addCriterion("uColumn_1 between", value1, value2, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn1NotBetween(String value1, String value2) {
            addCriterion("uColumn_1 not between", value1, value2, "ucolumn1");
            return (Criteria) this;
        }

        public Criteria andUcolumn2IsNull() {
            addCriterion("uColumn_2 is null");
            return (Criteria) this;
        }

        public Criteria andUcolumn2IsNotNull() {
            addCriterion("uColumn_2 is not null");
            return (Criteria) this;
        }

        public Criteria andUcolumn2EqualTo(String value) {
            addCriterion("uColumn_2 =", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2NotEqualTo(String value) {
            addCriterion("uColumn_2 <>", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2GreaterThan(String value) {
            addCriterion("uColumn_2 >", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2GreaterThanOrEqualTo(String value) {
            addCriterion("uColumn_2 >=", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2LessThan(String value) {
            addCriterion("uColumn_2 <", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2LessThanOrEqualTo(String value) {
            addCriterion("uColumn_2 <=", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2Like(String value) {
            addCriterion("uColumn_2 like", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2NotLike(String value) {
            addCriterion("uColumn_2 not like", value, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2In(List<String> values) {
            addCriterion("uColumn_2 in", values, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2NotIn(List<String> values) {
            addCriterion("uColumn_2 not in", values, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2Between(String value1, String value2) {
            addCriterion("uColumn_2 between", value1, value2, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn2NotBetween(String value1, String value2) {
            addCriterion("uColumn_2 not between", value1, value2, "ucolumn2");
            return (Criteria) this;
        }

        public Criteria andUcolumn3IsNull() {
            addCriterion("uColumn_3 is null");
            return (Criteria) this;
        }

        public Criteria andUcolumn3IsNotNull() {
            addCriterion("uColumn_3 is not null");
            return (Criteria) this;
        }

        public Criteria andUcolumn3EqualTo(String value) {
            addCriterion("uColumn_3 =", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3NotEqualTo(String value) {
            addCriterion("uColumn_3 <>", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3GreaterThan(String value) {
            addCriterion("uColumn_3 >", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3GreaterThanOrEqualTo(String value) {
            addCriterion("uColumn_3 >=", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3LessThan(String value) {
            addCriterion("uColumn_3 <", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3LessThanOrEqualTo(String value) {
            addCriterion("uColumn_3 <=", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3Like(String value) {
            addCriterion("uColumn_3 like", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3NotLike(String value) {
            addCriterion("uColumn_3 not like", value, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3In(List<String> values) {
            addCriterion("uColumn_3 in", values, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3NotIn(List<String> values) {
            addCriterion("uColumn_3 not in", values, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3Between(String value1, String value2) {
            addCriterion("uColumn_3 between", value1, value2, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn3NotBetween(String value1, String value2) {
            addCriterion("uColumn_3 not between", value1, value2, "ucolumn3");
            return (Criteria) this;
        }

        public Criteria andUcolumn4IsNull() {
            addCriterion("uColumn_4 is null");
            return (Criteria) this;
        }

        public Criteria andUcolumn4IsNotNull() {
            addCriterion("uColumn_4 is not null");
            return (Criteria) this;
        }

        public Criteria andUcolumn4EqualTo(String value) {
            addCriterion("uColumn_4 =", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4NotEqualTo(String value) {
            addCriterion("uColumn_4 <>", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4GreaterThan(String value) {
            addCriterion("uColumn_4 >", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4GreaterThanOrEqualTo(String value) {
            addCriterion("uColumn_4 >=", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4LessThan(String value) {
            addCriterion("uColumn_4 <", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4LessThanOrEqualTo(String value) {
            addCriterion("uColumn_4 <=", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4Like(String value) {
            addCriterion("uColumn_4 like", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4NotLike(String value) {
            addCriterion("uColumn_4 not like", value, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4In(List<String> values) {
            addCriterion("uColumn_4 in", values, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4NotIn(List<String> values) {
            addCriterion("uColumn_4 not in", values, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4Between(String value1, String value2) {
            addCriterion("uColumn_4 between", value1, value2, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn4NotBetween(String value1, String value2) {
            addCriterion("uColumn_4 not between", value1, value2, "ucolumn4");
            return (Criteria) this;
        }

        public Criteria andUcolumn5IsNull() {
            addCriterion("uColumn_5 is null");
            return (Criteria) this;
        }

        public Criteria andUcolumn5IsNotNull() {
            addCriterion("uColumn_5 is not null");
            return (Criteria) this;
        }

        public Criteria andUcolumn5EqualTo(String value) {
            addCriterion("uColumn_5 =", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5NotEqualTo(String value) {
            addCriterion("uColumn_5 <>", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5GreaterThan(String value) {
            addCriterion("uColumn_5 >", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5GreaterThanOrEqualTo(String value) {
            addCriterion("uColumn_5 >=", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5LessThan(String value) {
            addCriterion("uColumn_5 <", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5LessThanOrEqualTo(String value) {
            addCriterion("uColumn_5 <=", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5Like(String value) {
            addCriterion("uColumn_5 like", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5NotLike(String value) {
            addCriterion("uColumn_5 not like", value, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5In(List<String> values) {
            addCriterion("uColumn_5 in", values, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5NotIn(List<String> values) {
            addCriterion("uColumn_5 not in", values, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5Between(String value1, String value2) {
            addCriterion("uColumn_5 between", value1, value2, "ucolumn5");
            return (Criteria) this;
        }

        public Criteria andUcolumn5NotBetween(String value1, String value2) {
            addCriterion("uColumn_5 not between", value1, value2, "ucolumn5");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}